import java.util.Arrays;

public class L189 {
    public static void main(String[] args) {
        int[] nums = {1, 2};
//        int[] nums = {1, 2, 3, 4, 5, 6, 7};
        int k = 1;
//        int k = 3;
        new Solution().rotate(nums, k);
    }

    static class Solution {
        public void rotate(int[] nums, int k) {
            if (nums.length < 2 || k < 1) {
                return;
            }

            int start = 0;
            int end = nums.length - 1;
            reverse(nums, start, end);

            int n = k % nums.length;
            reverse(nums, start, n - 1);
            reverse(nums, n, end);

        }

        private void reverse(int[] nums, int start, int end) {
            while (start < end) {
                int tmp = nums[start];
                nums[start] = nums[end];
                nums[end] = tmp;
                start++;
                end--;
            }
            System.out.println(Arrays.toString(nums));
        }
    }

//    static class Solution {
//        public void rotate(int[] nums, int k) {
//            int[] newNums = new int[nums.length];
//            int tmp = 0;
//            for (int i = 0; i < nums.length; i++) {
//                int newIndex = (i + k) % nums.length;
//                newNums[newIndex] = nums[i];
////
////                tmp = nums[newIndex];
////                nums[newIndex] = nums[i];
////                nums[i] = tmp;
//                System.out.println("原索引位置：" + i + ";;; 新索引位置：" + newIndex);
//                System.out.println(Arrays.toString(newNums));
//            }
//            nums = newNums;
//            System.out.println(Arrays.toString(nums));
//        }
//    }


//    static class Solution {
//        public void rotate(int[] nums, int k) {
//            int tmp = 0;
//            for (int i = 0; i < k; i++) {
//                tmp = nums[nums.length - 1];
//                for (int j = nums.length - 1; j > 0; j--) {
//                    nums[j] = nums[j - 1];
//                }
//                nums[0] = tmp;
//                System.out.println(Arrays.toString(nums));
//            }
//        }
//    }
}
